#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct studentscore{
	char id[20];
	char name[20];
	double chinese;
	double english;
	double math;
	double sum;
};
//输入学生成绩
void addscore(struct studentscore s[],int n){
	int i;
	for (i=0;i<n;i++){
	printf("请输入第%d个学生的信息.\n",i+1);
	printf("请输入学生的id、姓名、语文成绩、英语成绩、数学成绩：\n");
	scanf("%s %s %lf %lf %lf",s[i].id,s[i].name,&s[i].chinese,&s[i].english,&s[i].math);
	printf("\n");
	s[i].sum=s[i].chinese+s[i].english+s[i].math;//计算总成绩
	printf("  id：%s\n  姓名：%s\n  语文成绩：%2lf\n  英语成绩：%2lf\n  数学成绩：%2lf\n  总成绩：%2lf\n",s[i].id,s[i].name,s[i].chinese,s[i].english,s[i].math,s[i].sum);
		}	
		getchar();//捕获之前的回车符
	    getchar();//等待用户输入
		system("cls");
       }
//查询学生成绩
int findscore(struct studentscore s[],int n){
	char id[20];
    printf("请输入您要查询的学生id:\n");
	scanf("%s",id);
	for(int i=0;i<n;i++){
		if(strcmp(s[i].id,id)==0){
			printf("找到该学生!\n");
			printf("  id：%s\n  姓名：%s\n  语文成绩：%2lf\n  英语成绩：%2lf\n  数学成绩：%2lf\n  总成绩：%2lf\n",s[i].id,s[i].name,s[i].chinese,s[i].english,s[i].math,s[i].sum);
		   getchar();//捕获之前的回车符
	       getchar();//等待用户输入
		   system("cls");
		   return n;
}
	}
	printf("未找到该id学生！\n");
	getchar();//捕获之前的回车符
    getchar();//等待用户输入
    system("cls");
	return n;
	}
//统计所有不及格科目超过两科的学生名单
void failscore(struct studentscore s[],int n){	
	int i;
	for (i=0;i<n;i++){
		int temp=0;//用于统计不及格成绩的个数
		if(s[i].chinese<60){
			temp++;
		}
		if(s[i].english<60){
			temp++;
		}
		if(s[i].math<60){
			temp++;
		}
		if(temp>2){
			printf("学生的id：%s\n 姓名：%s\n",s[i].id,s[i].name);
		}
	}
	    getchar();//捕获之前的回车符
	    getchar();//等待用户输入
		system("cls");
}
int main(int argc, char *argv[]) {
	struct studentscore s[1000];
	int num=0;
	printf("请输入班级学生总人数：\n");
	scanf("%d",&num);
	printf("\n");
	addscore(s,num);//输入学生各科成绩
	int select=0;
	while(1){
		printf("\t欢迎查询成绩!\t\n");
		printf("\t1.查询某个学生的各科成绩\t\n");
		printf("\t2.统计两科以上科目不及格学生成绩名单\t\n");
		printf("\t0.退出程序\t\n");
		printf("\t请选择业务\t\n");
	scanf("%d",&select);
	switch(select){
		case 1:
			findscore(s,num);//查询某个学生各科成绩
			break;
	    case 2:
	    	failscore(s,num);//统计不及格学生成绩名单
	    	break;
	    case 0:
	    	printf("程序已经退出！\n");
	    	break;
	    default:
	    	printf("你的选项有误，请重新输入：\n");
	}
}
   
	return 0;      
}